import xlsxwriter as xw


def xw_toExcel(data: list[dict, ...], fileName: str, title: list, workSheetName: str):
    """
    xlsxwriter库储存数据到excel
    :param data:列表数据，形如 list[dict,dict,... ]
    :param fileName:工作簿名称
    :param title:表头，形如[...]
    :param workSheetName:工作表名称
    :return:
    """
    workbook = xw.Workbook(fileName)
    worksheet1 = workbook.add_worksheet(workSheetName)
    worksheet1.activate()
    worksheet1.write_row('A1', title)
    i = 2
    for j in range(len(data)):
        # insertData = [data[j]["id"], data[j]["name"], data[j]["price"]]
        insertData = [data[j]['计划编号'], data[j]['作业性质'], data[j]['专业类型'], data[j]['作业内容'],
                      data[j]['是否停电'], data[j]['开始时间点'], data[j]['电网类型'], data[j]['专业'],
                      data[j]['公告牌要求'], data[j]['施工设备要求'], data[j]['施工接地线要求'],
                      data[j]['施工方法要求'], data[j]['施工额外要求'], data[j]['施工人员要求'],
                      data[j]['电力线路设备'], data[j]['现场安全要求'], data[j]['是否有邻近设备'],
                      data[j]['邻近设备补充'], data[j]['其他注意事项'], data[j]['额外作业危险'],
                      data[j]['停电拉开开关'], data[j]['停电开关接地线'],
                      data[j]['现场电力设备'], data[j]['停电范围'], data[j]['带电线路设备'],
                      data[j]['运行人员联系要求'], data[j]['安全注意事项'], data[j]['安全注意事项补充'],
                      data[j]['二次设备回路'], data[j]['交叉跨越'], data[j]['涉及地下管线'], data[j]
                      ['现场作业环境'], data[j]['现场作业环境补充'], data[j]['电压(V)'], data[j]['是否办票'],
                      data[j]['需要视频监控'], data[j][
                          '作业人数'], data[j]['累计作业时长(小时)'], data[j]['温度(摄氏度)'], data[j]['相对湿度(%)'],
                      data[j]['风速(m/s)'], data[j]['每小时降水量(mm)'],data[j]['风险等级(标注项)']
                      ]

        row = 'A' + str(i)
        worksheet1.write_row(row, insertData)
        i += 1
    workbook.close()
